package com.teracode.university.intro_sistemas_java.solucion;

import static org.junit.Assert.*;
import org.junit.Test;

public class PersonaTest {

	@Test
	public void testAgregarPrefijo() {
		
		Persona persona = new Persona();
		
		String nombreConPrefijo = persona.agregarPrefijo("Burns", true);
		
		assertEquals(nombreConPrefijo, "Sr. Burns");
		assertFalse(nombreConPrefijo.startsWith("Sra."));
		
		nombreConPrefijo = persona.agregarPrefijo("de las 4 decadas", false);
		
		assertEquals(nombreConPrefijo, "Sra. de las 4 decadas");
		assertTrue(nombreConPrefijo.startsWith("Sra. "));
	}
	
	@Test
	public void testContarVocales() {
		
		Persona persona = new Persona(); // Creo el objeto persona para ejecutar sus metodos
		
		assertEquals(5, persona.contarVocales("homero j simpson")); // controlo que haya 5 vocales
		
		assertEquals(3, persona.contarVocales("HOMERO")); // controlo que haya 3 vocales mayusculas con vocal al final
		
		assertEquals(0, persona.contarVocales("123")); // controlo que no haya vocales
		
		assertEquals(2, persona.contarVocales("Otto")); // controlo que haya 2 vocales may y min con vocal al final y al ppio
	}

	@Test
	public void testInvertirNombre() {
		
		Persona persona = new Persona();
		
		assertEquals("321", persona.invertirNombre("123")); // que sean inversos
		
		assertEquals("neuquen", persona.invertirNombre("neuquen")); // que sean iguales
		
		assertFalse("simpson j homero".equals(persona.invertirNombre("homero j simpson"))); // que sean distintos
	}
	
	@Test
	public void testEsPalindromo() {
		
		Persona persona = new Persona();
		
		assertTrue(persona.esPalindromo("neuquen")); // es palindromo
		
		assertTrue(persona.esPalindromo("anitalavalatina")); // es palindromo
		
		assertFalse(persona.esPalindromo("homero j simpson")); // NO es palindromo
		
	}
}
